﻿using Gargoyle.Roton;
using System;
using System.Collections.Generic;
using System.Text;

namespace Gargoyle.ZZT
{
    static class ElementList
    {
        public static Element[] ZZT()
        {
            Element[] result = {
                                ElementPresets.Empty(),
                                ElementPresets.BoardEdge(),
                                ElementPresets.Messenger(),
                                ElementPresets.Monitor(),
                                ElementPresets.Player(),
                                ElementPresets.Ammo(),
                                ElementPresets.Torch(),
                                ElementPresets.Gem(),
                                ElementPresets.Key(),
                                ElementPresets.Door(),
                                ElementPresets.Scroll(),
                                ElementPresets.Passage(),
                                ElementPresets.Duplicator(),
                                ElementPresets.Bomb(),
                                ElementPresets.Energizer(),
                                ElementPresets.Star(),
                                ElementPresets.Clockwise(),
                                ElementPresets.Counter(),
                                ElementPresets.Bullet(),
                                ElementPresets.Water(),
                                ElementPresets.Forest(),
                                ElementPresets.Solid(),
                                ElementPresets.Normal(),
                                ElementPresets.Breakable(),
                                ElementPresets.Boulder(),
                                ElementPresets.SliderNS(),
                                ElementPresets.SliderEW(),
                                ElementPresets.Fake(),
                                ElementPresets.Invisible(),
                                ElementPresets.BlinkWall(),
                                ElementPresets.Transporter(),
                                ElementPresets.Line(),
                                ElementPresets.Ricochet(),
                                ElementPresets.BlinkRayH(),
                                ElementPresets.Bear(),
                                ElementPresets.Ruffian(),
                                ElementPresets.Object(),
                                ElementPresets.Slime(),
                                ElementPresets.Shark(),
                                ElementPresets.SpinningGun(),
                                ElementPresets.Pusher(),
                                ElementPresets.Lion(),
                                ElementPresets.Tiger(),
                                ElementPresets.BlinkRayV(),
                                ElementPresets.Head(),
                                ElementPresets.Segment(),
                                ElementPresets.None(),
                                ElementPresets.BlueText(),
                                ElementPresets.GreenText(),
                                ElementPresets.CyanText(),
                                ElementPresets.RedText(),
                                ElementPresets.PurpleText(),
                                ElementPresets.BrownText(),
                                ElementPresets.BlackText()
                               };
            return result;
        }

        public static Element[] SuperZZT()
        {
            Element[] result = { 
                                ElementPresets.Empty(),
                                ElementPresets.BoardEdge(),
                                ElementPresets.Messenger(),
                                ElementPresets.MonitorSuperZZT(),
                                ElementPresets.Player(),
                                ElementPresets.Ammo(),
                                ElementPresets.None(),
                                ElementPresets.Gem(),
                                ElementPresets.Key(),
                                ElementPresets.Door(),
                                ElementPresets.Scroll(),
                                ElementPresets.Passage(),
                                ElementPresets.Duplicator(),
                                ElementPresets.Bomb(),
                                ElementPresets.Energizer(),
                                ElementPresets.None(),
                                ElementPresets.Clockwise(),
                                ElementPresets.Counter(),
                                ElementPresets.None(),
                                ElementPresets.Lava(),
                                ElementPresets.Forest(),
                                ElementPresets.Solid(),
                                ElementPresets.Normal(),
                                ElementPresets.Breakable(),
                                ElementPresets.Boulder(),
                                ElementPresets.SliderNS(),
                                ElementPresets.SliderEW(),
                                ElementPresets.Fake(),
                                ElementPresets.Invisible(),
                                ElementPresets.BlinkWallSuperZZT(),
                                ElementPresets.Transporter(),
                                ElementPresets.Line(),
                                ElementPresets.Ricochet(),
                                ElementPresets.None(),
                                ElementPresets.BearSuperZZT(),
                                ElementPresets.Ruffian(),
                                ElementPresets.Object(),
                                ElementPresets.Slime(),
                                ElementPresets.None(),
                                ElementPresets.SpinningGun(),
                                ElementPresets.Pusher(),
                                ElementPresets.Lion(),
                                ElementPresets.Tiger(),
                                ElementPresets.None(),
                                ElementPresets.Head(),
                                ElementPresets.Segment(),
                                ElementPresets.None(),
                                ElementPresets.Floor(),
                                ElementPresets.WaterN(),
                                ElementPresets.WaterS(),
                                ElementPresets.WaterW(),
                                ElementPresets.WaterE(),
                                ElementPresets.None(),
                                ElementPresets.None(),
                                ElementPresets.None(),
                                ElementPresets.None(),
                                ElementPresets.None(),
                                ElementPresets.None(),
                                ElementPresets.None(),
                                ElementPresets.Roton(),
                                ElementPresets.DragonPup(),
                                ElementPresets.Pairer(),
                                ElementPresets.Spider(),
                                ElementPresets.Web(),
                                ElementPresets.Stone(),
                                ElementPresets.None(),
                                ElementPresets.None(),
                                ElementPresets.None(),
                                ElementPresets.None(),
                                ElementPresets.Bullet(),
                                ElementPresets.BlinkRayH(),
                                ElementPresets.BlinkRayV(),
                                ElementPresets.Star(),
                                ElementPresets.BlueText(),
                                ElementPresets.GreenText(),
                                ElementPresets.CyanText(),
                                ElementPresets.RedText(),
                                ElementPresets.PurpleText(),
                                ElementPresets.BrownText(),
                                ElementPresets.BlackText()
                               };
            return result;
        }
    }
}
